1 ISO C 整型限制列表
| 名称 |
说明 |
可接受的最小值 |
典型值 |
| CHAR_BIT |
char的位数(bit) |
8 |
8 |
| CHAR_MAX |
char的最大值 |
127 |
127 |
| CHAR_MIN |
char的最小值 |
127 |
128 |
| SCHAR_MIN |
signed char的最大值 |
127 |
127 |
| SCHAR_MIN |
signed char的最小值 |
127 |
128 |
| UCHAR_MAX |
unsigned char 的最大值 |
255 |
255 |
| INT_MAX |
int 的最大值 |
32 767 |
2 147 483 647 |
| INT_MIN |
int 的最大值 |
32 767 |
2 147 483 647 |
| UINT_MAX |
unsigned int 的最大值 |
65 535 |
4 294 967 295 |
| SHRT_MAX |
short 的最大值 |
32 767 |
32 767 |
| SHRT_MIN |
short 的最小值 |
32 767 |
32 768 |
| USHRT_MAX |
unsigned short 的最大值 |
65 535 |
65 535 |
| LONG_MAX |
long的最大值 |
2 147 483 647 |
2 147 483 647 |
| LONG_MIN |
long 最小值 |
2 147 483 647 |
2 147 483 648 |
| ULONG_MAX |
unsigned long 的最大值 |
4 294 967 295 |
4 294 967 295 |
| LLONG_MAX |
long long 的最大值 |
9 223 372 036 854 775 807 |
9 223 372 036 854 775 807 |
| LLONG_MIN |
long long 的最小值 |
9 223 372 036 854 775 807 |
9 223 372 036 854 775 808 |
| ULLONG_MAX |
unsigned long long 的最大值 |
18 446 744 073 709 551 615 |
18 446 744 073 709 551 615 |
| MB_LEN_MAX |
在一个多字节字符常量中的最大字节数 |
1 |
6 |
2 ISO C 常量限制
| 限制 |
FreeBSD 8.0 |
Linux 3.2.0 |
Mac OS X 10.6.8 |
Solaris 10 |
| FOPEN_MAX |
20 |
16 |
20 |
20 |
| TMP_MAX |
308915776 |
238 328 |
308 915 776 |
17 576 |
| FILENAME_MAX |
1024 |
4096 |
1024 |
1024 |
#include <limits.h>
#include <stdlib.h>
#include "io_utils.h"
void Print_Size_Of(void);
void Print_Limit(void);
void Print_Const_Limit(void);
int main() {
Print_Limit();
PRINTLNF("#######################");
Print_Const_Limit();
PRINTLNF("#######################");
Print_Size_Of();
exit(0);
}
void Print_Size_Of(void) {
PRINT_INT(sizeof(char));
PRINT_INT(sizeof(int));
PRINT_LONG(sizeof(short));
PRINT_LONG(sizeof(long));
PRINT_INT(sizeof(long long));
exit(0);
}
void Print_Limit(void) {
//char
PRINT_INT(CHAR_BIT);
PRINT_INT(CHAR_MAX);
PRINT_INT(CHAR_MIN);
PRINTLNF("---------------------------");
//schar
PRINT_INT(SCHAR_MAX);
PRINT_INT(SCHAR_MIN);
PRINT_INT(UCHAR_MAX);
PRINTLNF("---------------------------");
//int
PRINT_INT(INT_MAX);
PRINT_INT(INT_MIN);
PRINT_INT(UINT_MAX);
PRINTLNF("---------------------------");
//short
PRINT_INT(SHRT_MIN);
PRINT_INT(SHRT_MAX);
PRINTLNF("---------------------------");
//long
PRINT_LONG(LONG_MIN);
PRINT_LONG(LONG_MAX);
PRINT_LONG(ULONG_MAX);
PRINTLNF("---------------------------");
//long long
PRINT_LONG(LLONG_MAX);
PRINT_LONG(LLONG_MIN);
PRINT_LONG(ULLONG_MAX);
PRINTLNF("---------------------------");
// multibyte
PRINT_LONG(MB_LEN_MAX);
}
void Print_Const_Limit(void){
PRINT_INT(FOPEN_MAX);
PRINT_INT(TMP_MAX);
PRINT_INT(FILENAME_MAX);
}